<?php



class CapitanEsJugadorValidator extends sfValidatorBase
{
	
	protected function configure($options = array(), $messages = array()) {
		$this->addOption('capitan');
		$this->addOption('jugadores');
		$this->addOption('jugadores_no_fichados');
		
	}	
	
	protected function doClean($value)
	{
		$capitan = $value[$this->getOption('capitan')];
		$j = $value[$this->getOption('jugadores')];
		$j_no_fichado = $value[$this->getOption('jugadores_no_fichados')];
		$esJugador = false;
		if ($j)
		{
			foreach($j as $jugador):
				if ($jugador['jugo'] && (strcmp($capitan,$jugador['numero_de_camiseta'])==0))
					$esJugador = true;
			endforeach;
		}
		foreach($j_no_fichado as $jugador):
			if ($jugador['jugo'] && (strcmp($capitan,$jugador['numero_de_camiseta'])==0))
				$esJugador = true;
		endforeach;
		if (!$esJugador)
		{
				//$this->messages = array('invalid' => 'El capitan debe ser un jugador que haya jugado'); 
				throw new sfValidatorError($this, 'invalid', array('value' => $value));
		}

		return $value;
	}

}
?>